package inventory.service;


import inventory.entity.MaterialCategory;
import inventory.entity.MaterialTypical;
import inventory.entity.po.TerminalAndEquipmentPo;

import java.util.List;

public interface TypeService {

    /**
     * 根据类别ID查询类别信息
     * @param categoryId 类别ID
     * @return MaterialCategory 对象
     * auth by lihang
     */
    MaterialCategory selectMaterialCategory(String categoryId);

    /**
     * 查询城市
     * @return List 对象
     * auth by lihang
     */
    List queryCity();

    /**
     * 查询县
     * @return List 对象
     * auth by lihang
     */
    List queryCounty();

    /**
     * 添加材料类型
     * @param materialTypical 材料类型 对象
     * auth by lihang
     */
    void addMaterialType(MaterialTypical materialTypical);

    /**
     * 根据id删除材料类型
     * @param typicalId 类型id
     * auth by lihang
     */
    boolean deleteMaterialTypeById(String typicalId);

    /**
     * 根据id修改材料类型信息
     * @param materialTypical 材料类型对象
     * auth by lihang
     */
    void modifyMaterialTypeById(MaterialTypical materialTypical);

    /**
     * 根据id查找材料类型信息
     * @param typicalId 材料类型id
     * @return materialTypical 材料类型对象
     * auth by lihang
     */
    MaterialTypical selectMaterialType(String typicalId);

    /**
     * 根据id列表批量删除材料
     * @param typesId 材料类型id
     * auth by lihang
     */
    boolean deleteMaterialByArray(List<String> typesId);

    /**
     * 根据终端或装备名，管理员id查询材料信息
     * @param typicalName 类型名
     * @param managerId 管理员id
     * @return
     */
    List<TerminalAndEquipmentPo> queryTypeByTypicalName(String typicalName, String managerId);

    /**
     * 查询管理员管辖的所有材料种类
     * @param managerId
     * @return
     */
    List<MaterialTypical> queryTypeByManagerId(String managerId);
}
